//
// Created by 32827 on 2023/11/16.
//

#ifndef YZFRAME_YZF_CRC_H
#define YZFRAME_YZF_CRC_H
#include "yzf.h"
#ifdef __cplusplus
extern "C" {
#endif
    /**
     * 清除crc寄存器
     * */
    YZF_RESULT yzf_crc_reset();
    /**
     * @param data_p 需要计算的数组
     * @param len 数组长度
     * */
    YZF_RESULT yzf_crc_write(const uint32_t *data_p,uint32_t len);
    /**
     * @param crc_p 作为返回值
     * */
    YZF_RESULT yzf_crc_read(uint32_t *crc_p);
    /**
     * CRC 数据校验检测
     *
     * @param data_p 需要计算的数组
     * @param len 数组长度
     * @param data_crc 比对值
     * @return 如果错误将返回 YZF_CRC_ERROR
     * */
     YZF_RESULT yzf_crc_check(const uint32_t *data_p,uint32_t len,uint32_t data_crc);
#ifdef __cplusplus
}
#endif
#endif //YZFRAME_YZF_CRC_H
